ComboBox: Dodge possible surplus disconnects
authorDaniel Boles <dboles@src.gnome.org>
Fri, 1 Sep 2017 19:17:11 +0000 (20:17 +0100)
committerDaniel Boles <dboles@src.gnome.org>
Fri, 1 Sep 2017 19:20:17 +0000 (20:20 +0100)
in case anyone connected any other signal on the model to this ComboBox.

gtk/gtkcombobox.c

index 5e59260781622d54a12726174d30fa5fe953c094..c702529a54f27d44e3a884fbb8e1a0f3f9385697 100644 (file)
@@ -1616,7 +1616,18 @@ gtk_combo_box_unset_model (GtkComboBox *combo_box)
 
   if (priv->model)
     {
-      g_signal_handlers_disconnect_by_data (priv->model, combo_box);
+      g_signal_handlers_disconnect_by_func (priv->model,
+                                            gtk_combo_box_model_row_inserted,
+                                            combo_box);
+      g_signal_handlers_disconnect_by_func (priv->model,
+                                            gtk_combo_box_model_row_deleted,
+                                            combo_box);
+      g_signal_handlers_disconnect_by_func (priv->model,
+                                            gtk_combo_box_model_rows_reordered,
+                                            combo_box);
+      g_signal_handlers_disconnect_by_func (priv->model,
+                                            gtk_combo_box_model_row_changed,
+                                            combo_box);
 
       g_object_unref (priv->model);
       priv->model = NULL;